home *** CD-ROM | disk | FTP | other *** search
- #include <stdlib.h>
- #include <stdio.h>
-
- int setvbuf(FILE *f,char *buf,int mode,size_t size)
- {
- if(mode==_IONBF&&size<2){size=2;buf=0;}
- if(size<2||f->flags&(_READ|_WRITE)) return(EOF);
- if(mode==_IONBF) {f->flags|=_UNBUF;size=1;} else f->flags&=~_UNBUF;
- if(mode==_IOLBF) f->flags|=_LINEBUF; else f->flags&=~_LINEBUF;
- if(buf){
- size--; /* eins wird fuer unget gebraucht */
- f->base=buf+1;
- f->flags|=_NOTMYBUF;
- }else{
- if(!(f->base=(char *)malloc(size+1)+1))
- return(EOF);
- }
- f->bufsize=size;
- return(0);
- }
-
-